<?php


namespace App\Http\Controllers\Car;

use App\Http\Controllers\Controller;
use App\Models\CarModels\PatrolTypeFirst;
use Illuminate\Database\QueryException;
use Illuminate\Http\Request;
use Validator;

/**
 * @group 手机app->工作台->质检->任务类型一级
 *
 * 采用 restful api
 *
 * Body Parameters 表示请求的所需要的参数
 *
 * Query Parameters 表示返回参数的名称
 */
class PatrolTaskFirstController extends Controller
{
    /**
     * 任务类型一级查看所有
     *
     * @queryParam  type_name    任务类型名称
     *
     */
    public function index(){
        $query =PatrolTypeFirst::get();
        return response()->json(encodeMsg($query,200),200);
    }
    /**
     * 任务类型一级查看单条
     *
     * @queryParam  type_name    任务类型名称
     *
     */
    public function show(Request $request,$pk){
        $query =PatrolTypeFirst::find($pk);
        if ($query==null){
            return response()->json(encodeMsg(["message" => "没有该任务类型"],404), 404);
        }
        return response()->json(encodeMsg($query,200),200);
    }
    /**
     * 任务类型一级添加
     *
     * @bodyParam  type_name string required   任务类型名称
     *
     */
    public function store(Request $request)
    {

        $validator = Validator::make($request->all(), genValidate());
        if ($validator->fails()) {
            return response()->json(encodeMsg($validator->errors()->messages(), 400), 400);
        }
        $data = PatrolTypeFirst::create($request->all());
        return response()->json(encodeMsg($data, 201));

    }
    /**
     * 任务类型一级修改
     *
     * @bodyParam  type_name string optional 任务类型名称
     *
     */
    public function update(Request $request, $id)
    {

        $validator = Validator::make($request->all(), genValidate());
        if ($validator->fails()) {
            return response()->json(encodeMsg($validator->errors()->messages(), 400), 400);
        }

        $carTask = PatrolTypeFirst::find($id);
        if ($carTask == []) {
            return response()->json(encodeMsg(["message" => "没有该任务信息!"], 404));
        }
        try{
            $carTask->update($request->all());
        }catch (QueryException $e) {
            return response()->json(encodeMsg(["message" => "修改失败"], 500),500);
        }
        return response()->json(encodeMsg($carTask, 200));

    }
    /**
     * 任务类型一级删除
     *
     *
     */
    public function destroy($id)
    {
        $parkTask = PatrolTypeFirst::find($id);
        if ($parkTask == []) {
            return response()->json(encodeMsg(["message" => "没有该任务信息!"], 404));
        }
        if ($parkTask->delete()) {
            return response()->json(encodeMsg(["message" => "删除成功!"], 204));
        } else {
            return response()->json(encodeMsg(["message" => "删除失败!"], 400));
        }
    }
}
